<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:frbr="http://vocab.org/frbr/core" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/terms/" exclude-result-prefixes="frbr rdf dc">

    <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
    <xsl:template match="/">
        <doc>
            <xsl:apply-templates select="./*"/>
        </doc>
    </xsl:template>

    <!-- Suppress all unmatched text/attributes -->
    <xsl:template match="text()|@*">
        <xsl:apply-templates select="./*"/>
    </xsl:template>

    <xsl:template match="dc:identifier[@type='voyagerBib']">
        <xsl:if test=".">
            <field name="identifier">URN:voyagerBib:<xsl:value-of select="."/></field>
        </xsl:if>
    </xsl:template>
    <xsl:template match="dc:identifier[@type='voyagerMfhd']">
        <xsl:if test=".">
            <field name="identifier">URN:voyagerMfhd:<xsl:value-of select="."/></field>
        </xsl:if>
    </xsl:template>
    <xsl:template match="dc:identifier[@type='voyagerItem']">
        <xsl:if test=".">
            <field name="identifier">URN:voyagerItem:<xsl:value-of select="."/></field>
        </xsl:if>
    </xsl:template>

    <xsl:template match="dc:Location[@type='library']/dc:title[@type='display']">
        <xsl:if test=".">
            <field name="library">
                <xsl:value-of select="."/>
            </field>
        </xsl:if>
    </xsl:template>
    <xsl:template match="dc:Location[not(@type)]/dc:title[not(@type)]">
        <xsl:if test=".">
            <field name="location">
                <xsl:value-of select="."/>
            </field>
        </xsl:if>
    </xsl:template>

    <xsl:template match="dc:identifier[@type='call number' and @format='display']">
        <xsl:if test=".">
            <field name="callNumber">
                <xsl:value-of select="."/>
            </field>
        </xsl:if>
    </xsl:template>
    <xsl:template match="status/dc:description">
        <xsl:variable name="status" select="."/>
        <xsl:choose>
            <xsl:when test="$status='Not Charged'">
                <field name="status">Available</field>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="."/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
    <xsl:template match="dc:title[@type='caption']">
        <xsl:if test=".">
            <field name="alternateTitle">
                <xsl:value-of select="."/>
            </field>
        </xsl:if>
    </xsl:template>
    <xsl:template match="dc:coverage">
        <xsl:if test=".">
            <field name="coverage">
                <xsl:value-of select="."/>
            </field>
        </xsl:if>
    </xsl:template>
    <xsl:template match="dc:description">
        <xsl:if test=".">
            <field name="description">
                <xsl:value-of select="."/>
            </field>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
